package com.zjny.helper;

/**
 * packageName com.zjny.helper
 *
 * @author cui haida
 * @version JDK 8
 * 2025/6/18
 */

import cn.hutool.core.util.ReUtil;
import cn.hutool.http.HtmlUtil;
import com.zjny.anno.Xss;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

/**
 * <p>
 * XSS校验器
 * </p>
 *
 * @author cui haida
 * 2024/05/22/9:28
 */
public class XssValidator implements ConstraintValidator<Xss, String> {
    /**
     * 检查给定的字符串是否包含HTML标记。
     * 该方法重写了ConstraintValidatorContext接口的isValid方法。
     *
     * @param value 需要验证的字符串。
     * @param constraintValidatorContext 验证上下文，提供有关验证过程的上下文信息。
     * @return 如果字符串不包含HTML标记，则返回true；否则返回false。
     */
    @Override
    public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
        // 使用正则表达式检查字符串中是否包含HTML标记
        return !ReUtil.contains(HtmlUtil.RE_HTML_MARK, value);
    }
}